<?php



class __lib_pages
{
    public $items;
    protected $perpage;
    protected $num;
    protected $pages;
    protected $prefix;

    /**
     * конструктор
     *
     * @param int $perpage  - кол-во строк на странице
     * @param int $items    - общее кол-во строк
     * @param string $page  - страница для отображения (формат "page<номер>")
     */
    function __construct($perpage, $items, $page) {
        $this->perpage=$perpage;
        $this->items=$items;
        $this->pages=ceil($this->items/$this->perpage);
        
        $page=(!empty($page)&&($page>0))?(($page>$this->pages)?$this->pages:$page):1;
        
        $this->num=$page;
    }

    /**
     * подготовка и вывод перечня страниц
     *
     * @param string $baseLink - базовая ссылка на страницу (без указания номера отображаемой страницы)
     */
    function output($baseLink) {
        global $init;
        
        $this->items=array();
        
        $symbol="&";
        if (strpos($baseLink,"?")===false) $symbol="?";

        if($this->pages>1) {
            for($p=1; $p<=$this->pages; $p++) {
                $item=array();
                $item['p']=$p;
                if($p!=$this->num) {
                    $item['link']=($baseLink.$symbol."pg=$p");
                }
                $this->items[]=$item;
            }
        }
        $init['start']['smarty']->assign("items",$this->items);
        return $init['start']['smarty']->fetch("libs/pages.tpl");
    }
	
    function blog($baseLink) {
        global $init;
        
        $this->items=array();
        
        $symbol="&";
        if (strpos($baseLink,"?")===false) $symbol="?";

        if($this->pages>1) {
            for($p=1; $p<=$this->pages; $p++) {
                $item=array();
                $item['p']=$p;
                if($p!=$this->num) {
                    $item['link']=($baseLink.$symbol."pg=$p");
                }
                $this->items[]=$item;
            }
        }
        $init['start']['smarty']->assign("items",$this->items);
        return $init['start']['smarty']->fetch("libs/pages.tpl");
    }

    function getPageNumber() {
        return $this->num;
    }

    function getItemNumber() {
        return $this->perpage*($this->num-1);
    }

    function getItemsPerPage() {
        return $this->perpage;
    }

    function getPages() {
        return $this->pages;
    }

}


?>